/**
 * dialog 表格的混合处理
 */
export default {
  data() {
    return {
      dialogData: {}, // dialog的配置项
      tabsData: {} // tabs 里面table的配置项
    }
  },
  methods: {
    /**
     * 初始化dialog或者tabs的配置项
     * @param column  表格配置项
     * @returns {{current: number, total: number, visible: boolean, data: [], size: number, form: {value: string}, column: *, active: string, btnLoading: boolean, loading: boolean, params: {}, selected: []}}
     */
    initDatas(column) {
      return {
        visible: false,
        loading: false,
        data: [],
        column: column,
        current: 1,
        size: 10,
        total: 0,
        active: '',
        params: {},
        form: {
          value: ''
        },
        selected: [],
        btnLoading: false
      }
    },
    /**
     * 查询触发事件
     * @param formName
     */
    onSearchDialog(formName) {
      this.dialogData.current = 1
      // this.fetchListAll()
    },
    /**
     * 重置触发事件
     * @param formName
     */
    onResetDialog(formName) {
      this.$refs[formName].resetFields()
      this.dialogData.current = 1
      // this.fetchListAll()
    },
    /**
     * 分页 size 改变的触发事件
     * @param v  size
     * @param name  对象名
     */
    onPageSizeChange({ v, name }) {
      this[name + 'Data'].size = v
      // this.fetchListAll()
    },
    /**
     * 分页 当前页 改变的触发事件
     * @param v current-page
     * @param name 对象名
     */
    onPageCurrentChange({ v, name }) {
      this[name + 'Data'].current = v
      // this.fetchListAll()
    },
    /**
     * 表格选中项改变的触发事件
     * @param v 选中值集合
     * @param name 对象名
     */
    onSelectionChange({ v, name }) {
      this[name + 'Data'].selected = v
    },
    /**
     * 清空表格选中项的触发事件
     * @param refsName  表格的ref值
     */
    handleClearSelected(refsName) {
      this.$refs[refsName].clearSelection()
    },
    /**
     * 提交按钮的触发事件
     */
    handleSubmit() {
      // this.dialogData.btnLoading = true
      // const ids = this.dialogData.selected.map(item => {
      //   return item.id
      // }).join(',')
      // const data = {
      //   orgId: this.selectNodeData.id
      // }
      // data[this.tabActive === 'user' ? 'userIds' : 'roleIds'] = ids
      // const fun = this.tabs[this.tabActive].add
      // fun(data).then(res => {
      //   this.dialogData.visible = false
      //   this.$message({
      //     message: res.message,
      //     type: 'success',
      //     duration: 2 * 1000
      //   })
      //   this.$refs['tabs-table'].clearSelection()
      //   this.fetchById()
      // }).finally(() => {
      //   this.dialogData.btnLoading = false
      // })
    }
  }
}
